package py.com.sole.dao.impl;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import py.com.sole.dao.DaoFactory;
import py.com.sole.dao.DireccionDao;

import py.com.sole.model.Direccion;

public class DireccionImpl implements DireccionDao {

  EntityManager em = DaoFactory.getEmDao();

  @Override
  public Direccion addDireccion(Direccion direccion) {
    try {
      em.getTransaction().begin();
      em.persist(direccion);
      em.getTransaction().commit();
      em.refresh(direccion);
      return direccion;
    } catch (Exception e) {
      return null;
    }
  }

  @Override
  public void deleteDireccion(int id) {
    em.getTransaction().begin();
    em.remove(em.find(Direccion.class, id));

  }

  @Override
  public Direccion updateDireccion(Direccion direccion) {
    try {
      return em.find(Direccion.class, direccion.getId());
    } catch (Exception e) {
      //Logger
    }
    return null;
  }

  @Override
  public Direccion getDireccionById(int id) {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public List<Direccion> direcciones() {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public Direccion getDireccionByName(String value) {
    // TODO Auto-generated method stub
    try {
      Query q = em.createNamedQuery("Direccion.findByDescripcion");
      q.setParameter("descripcion", value);
      return (Direccion) q.getSingleResult();
    } catch (Exception e) {
      return null;
    }

  }

}
